Confidential Ledger (preview:2024-12-09)

2025/10/09 • 32 new methods

ListCollections (new)
Description :  Collection ids are user-created collections of ledger entries
Reference :  Link ¶

⚼ Request

GET:  /app/collections
{
api-version: string ,
}

⚐ Response (200)

{
collections:
[
{
collectionId: string ,
}
,
]
,
nextLink: string ,
}

⚐ Response (default)

{
error:
{
code: string ,
message: string ,
}
,
}
GetEnclaveQuotes (new)
Description :  A quote is an SGX enclave measurement that can be used to verify the validity of a node and its enclave.
Reference :  Link ¶

⚼ Request

GET:  /app/enclaveQuotes
{
api-version: string ,
}

⚐ Response (200)

{
currentNodeId: string ,
enclaveQuotes: object ,
}

⚐ Response (default)

{
error:
{
code: string ,
message: string ,
}
,
}
GetConstitution (new)
Description :  The constitution is a script that assesses and applies proposals from consortium members.
Reference :  Link ¶

⚼ Request

GET:  /app/governance/constitution
{
api-version: string ,
}

⚐ Response (200)

{
digest: string ,
script: string ,
}

⚐ Response (default)

{
error:
{
code: string ,
message: string ,
}
,
}
ListConsortiumMembers (new)
Description :  Consortium members can manage the Confidential Ledger.
Reference :  Link ¶

⚼ Request

GET:  /app/governance/members
{
api-version: string ,
}

⚐ Response (200)

{
members:
[
{
certificate: string ,
id: string ,
}
,
]
,
nextLink: string ,
}

⚐ Response (default)

{
error:
{
code: string ,
message: string ,
}
,
}
ListLedgerUsers (new)
Description :  All users' object IDs and multiple roles will be returned.
Reference :  Link ¶

⚼ Request

GET:  /app/ledgerUsers
{
api-version: string ,
}

⚐ Response (200)

{
ledgerUsers:
[
{
assignedRoles:
[
string ,
]
,
userId: string ,
}
,
]
,
nextLink: string ,
}

⚐ Response (default)

{
error:
{
code: string ,
message: string ,
}
,
}
GetLedgerUser (new)
Description :  Gets a user with multiple roles.
Reference :  Link ¶

⚼ Request

GET:  /app/ledgerUsers/{userId}
{
api-version: string ,
userId: string ,
}

⚐ Response (200)

{
assignedRoles:
[
string ,
]
,
userId: string ,
}

⚐ Response (default)

{
error:
{
code: string ,
message: string ,
}
,
}
CreateOrUpdateLedgerUser (new)
Description :  A JSON merge patch is applied for existing users
Reference :  Link ¶

⚼ Request

PATCH:  /app/ledgerUsers/{userId}
{
api-version: string ,
userId: string ,
userMultipleRoles:
{
assignedRoles:
[
string ,
]
,
userId: string ,
}
,
}

⚐ Response (200)

{
assignedRoles:
[
string ,
]
,
userId: string ,
}

⚐ Response (default)

{
error:
{
code: string ,
message: string ,
}
,
}
DeleteLedgerUser (new)
Description :  Deletes a user with multiple roles from the Confidential Ledger.
Reference :  Link ¶

⚼ Request

DELETE:  /app/ledgerUsers/{userId}
{
api-version: string ,
userId: string ,
}

⚐ Response (204)

{}

⚐ Response (default)

{
error:
{
code: string ,
message: string ,
}
,
}
GetUserDefinedRole (new)
Description :  user defined roles allow users to define and manage app specific AuthZ policy.
Reference :  Link ¶

⚼ Request

GET:  /app/roles
{
api-version: string ,
roleName: string ,
}

⚐ Response (200)

{
role:
[
{
roleName: string ,
roleActions:
[
string ,
]
,
}
,
]
,
}

⚐ Response (default)

{
error:
{
code: string ,
message: string ,
}
,
}
CreateUserDefinedRole (new)
Description :  User defined roles allow users to define and manage app specific AuthZ policy.
Reference :  Link ¶

⚼ Request

PUT:  /app/roles
{
api-version: string ,
body:
{
roles:
[
{
roleName: string ,
roleActions:
[
string ,
]
,
}
,
]
,
}
,
}

⚐ Response (200)

{}

⚐ Response (default)

{
error:
{
code: string ,
message: string ,
}
,
}
UpdateUserDefinedRole (new)
Description :  User defined roles allow users to define and manage app specific AuthZ policy.
Reference :  Link ¶

⚼ Request

PATCH:  /app/roles
{
api-version: string ,
body:
{
roles:
[
{
roleName: string ,
roleActions:
[
string ,
]
,
}
,
]
,
}
,
}

⚐ Response (200)

{}

⚐ Response (default)

{
error:
{
code: string ,
message: string ,
}
,
}
DeleteUserDefinedRole (new)
Description :  A user defined role allows the users to create and manage their own role actions using the API.
Reference :  Link ¶

⚼ Request

DELETE:  /app/roles
{
api-version: string ,
roleName: string ,
}

⚐ Response (200)

{}

⚐ Response (default)

{
error:
{
code: string ,
message: string ,
}
,
}
ListLedgerEntries (new)
Description :  A collection id may optionally be specified. Only entries in the specified (or default) collection will be returned.
Reference :  Link ¶

⚼ Request

GET:  /app/transactions
{
api-version: string ,
collectionId: string ,
fromTransactionId: string ,
toTransactionId: string ,
tag: string ,
}

⚐ Response (200)

{
state: enum ,
nextLink: string ,
entries:
[
{
contents: string ,
collectionId: string ,
transactionId: string ,
preHooks:
[
{
functionId: string ,
properties:
{
arguments:
[
string ,
]
,
exportedFunctionName: string ,
runtimeOptions:
{
log_exception_details: boolean ,
max_cached_interpreters: integer ,
max_execution_time_ms: integer ,
max_heap_bytes: integer ,
max_stack_bytes: integer ,
return_exception_details: boolean ,
}
,
}
,
}
,
]
,
postHooks:
[
{
functionId: string ,
properties:
{
arguments:
[
string ,
]
,
exportedFunctionName: string ,
runtimeOptions:
{
log_exception_details: boolean ,
max_cached_interpreters: integer ,
max_execution_time_ms: integer ,
max_heap_bytes: integer ,
max_stack_bytes: integer ,
return_exception_details: boolean ,
}
,
}
,
}
,
]
,
}
,
]
,
}

⚐ Response (default)

{
error:
{
code: string ,
message: string ,
}
,
}
CreateLedgerEntry (new)
Description :  A collection id may optionally be specified.
Reference :  Link ¶

⚼ Request

POST:  /app/transactions
{
api-version: string ,
collectionId: string ,
tags: string ,
entry:
{
contents: string ,
collectionId: string ,
transactionId: string ,
preHooks:
[
{
functionId: string ,
properties:
{
arguments:
[
string ,
]
,
exportedFunctionName: string ,
runtimeOptions:
{
log_exception_details: boolean ,
max_cached_interpreters: integer ,
max_execution_time_ms: integer ,
max_heap_bytes: integer ,
max_stack_bytes: integer ,
return_exception_details: boolean ,
}
,
}
,
}
,
]
,
postHooks:
[
{
functionId: string ,
properties:
{
arguments:
[
string ,
]
,
exportedFunctionName: string ,
runtimeOptions:
{
log_exception_details: boolean ,
max_cached_interpreters: integer ,
max_execution_time_ms: integer ,
max_heap_bytes: integer ,
max_stack_bytes: integer ,
return_exception_details: boolean ,
}
,
}
,
}
,
]
,
}
,
}

⚐ Response (200)

{
$headers:
{
x-ms-ccf-transaction-id: string ,
}
,
$schema:
{
collectionId: string ,
}
,
}

⚐ Response (default)

{
error:
{
code: string ,
message: string ,
}
,
}
GetLedgerEntry (new)
Description :  To return older ledger entries, the relevant sections of the ledger must be read from disk and validated. To prevent blocking within the enclave, the response will indicate whether the entry is ready and part of the response, or if the loading is still ongoing.
Reference :  Link ¶

⚼ Request

GET:  /app/transactions/{transactionId}
{
api-version: string ,
collectionId: string ,
transactionId: string ,
}

⚐ Response (200)

{
state: enum ,
entry:
{
contents: string ,
collectionId: string ,
transactionId: string ,
preHooks:
[
{
functionId: string ,
properties:
{
arguments:
[
string ,
]
,
exportedFunctionName: string ,
runtimeOptions:
{
log_exception_details: boolean ,
max_cached_interpreters: integer ,
max_execution_time_ms: integer ,
max_heap_bytes: integer ,
max_stack_bytes: integer ,
return_exception_details: boolean ,
}
,
}
,
}
,
]
,
postHooks:
[
{
functionId: string ,
properties:
{
arguments:
[
string ,
]
,
exportedFunctionName: string ,
runtimeOptions:
{
log_exception_details: boolean ,
max_cached_interpreters: integer ,
max_execution_time_ms: integer ,
max_heap_bytes: integer ,
max_stack_bytes: integer ,
return_exception_details: boolean ,
}
,
}
,
}
,
]
,
}
,
}

⚐ Response (default)

{
error:
{
code: string ,
message: string ,
}
,
}
GetReceipt (new)
Description :  Gets a receipt certifying ledger contents at a particular transaction id.
Reference :  Link ¶

⚼ Request

GET:  /app/transactions/{transactionId}/receipt
{
api-version: string ,
transactionId: string ,
}

⚐ Response (200)

{
applicationClaims:
[
{
digest:
{
value: string ,
protocol: enum ,
}
,
kind: enum ,
ledgerEntry:
{
collectionId: string ,
contents: string ,
secretKey: string ,
protocol: enum ,
}
,
}
,
]
,
receipt:
{
cert: string ,
leaf: string ,
leafComponents:
{
claimsDigest: string ,
commitEvidence: string ,
writeSetDigest: string ,
}
,
nodeId: string ,
proof:
[
{
left: string ,
right: string ,
}
,
]
,
root: string ,
serviceEndorsements:
[
string ,
]
,
signature: string ,
}
,
state: enum ,
transactionId: string ,
}

⚐ Response (default)

{
error:
{
code: string ,
message: string ,
}
,
}
GetTransactionStatus (new)
Description :  Gets the status of an entry identified by a transaction id.
Reference :  Link ¶

⚼ Request

GET:  /app/transactions/{transactionId}/status
{
api-version: string ,
transactionId: string ,
}

⚐ Response (200)

{
state: enum ,
transactionId: string ,
}

⚐ Response (default)

{
error:
{
code: string ,
message: string ,
}
,
}
GetCurrentLedgerEntry (new)
Description :  A collection id may optionally be specified.
Reference :  Link ¶

⚼ Request

GET:  /app/transactions/current
{
api-version: string ,
collectionId: string ,
}

⚐ Response (200)

{
contents: string ,
collectionId: string ,
transactionId: string ,
preHooks:
[
{
functionId: string ,
properties:
{
arguments:
[
string ,
]
,
exportedFunctionName: string ,
runtimeOptions:
{
log_exception_details: boolean ,
max_cached_interpreters: integer ,
max_execution_time_ms: integer ,
max_heap_bytes: integer ,
max_stack_bytes: integer ,
return_exception_details: boolean ,
}
,
}
,
}
,
]
,
postHooks:
[
{
functionId: string ,
properties:
{
arguments:
[
string ,
]
,
exportedFunctionName: string ,
runtimeOptions:
{
log_exception_details: boolean ,
max_cached_interpreters: integer ,
max_execution_time_ms: integer ,
max_heap_bytes: integer ,
max_stack_bytes: integer ,
return_exception_details: boolean ,
}
,
}
,
}
,
]
,
}

⚐ Response (default)

{
error:
{
code: string ,
message: string ,
}
,
}
GetUserDefinedEndpoint (new)
Description :  Returns the user defined endpoint in the ACL instance
Reference :  Link ¶

⚼ Request

GET:  /app/userDefinedEndpoints
{
api-version: string ,
}

⚐ Response (200)

{
metadata:
{
endpoints: object ,
}
,
modules:
[
{
module: string ,
name: string ,
}
,
]
,
}

⚐ Response (default)

{
error:
{
code: string ,
message: string ,
}
,
}
CreateUserDefinedEndpoint (new)
Description :  Creates the user defined endpoint in the ACL instance
Reference :  Link ¶

⚼ Request

PUT:  /app/userDefinedEndpoints
{
api-version: string ,
bundle:
{
metadata:
{
endpoints: object ,
}
,
modules:
[
{
module: string ,
name: string ,
}
,
]
,
}
,
}

⚐ Response (201)

{}

⚐ Response (default)

{
error:
{
code: string ,
message: string ,
}
,
}
GetUserDefinedEndpointsModule (new)
Description :  It gets the module for the user defined endpoint.
Reference :  Link ¶

⚼ Request

GET:  /app/userDefinedEndpoints/modules
{
api-version: string ,
module_name: string ,
}

⚐ Response (200)

{
module: string ,
name: string ,
}

⚐ Response (default)

{
error:
{
code: string ,
message: string ,
}
,
}
GetRuntimeOptions (new)
Description :  It returns the runtime options
Reference :  Link ¶

⚼ Request

GET:  /app/userDefinedEndpoints/runtimeOptions
{
api-version: string ,
}

⚐ Response (200)

{
log_exception_details: boolean ,
max_cached_interpreters: integer ,
max_execution_time_ms: integer ,
max_heap_bytes: integer ,
max_stack_bytes: integer ,
return_exception_details: boolean ,
}

⚐ Response (default)

{
error:
{
code: string ,
message: string ,
}
,
}
UpdateRuntimeOptions (new)
Description :  Updates the runtime options.
Reference :  Link ¶

⚼ Request

PATCH:  /app/userDefinedEndpoints/runtimeOptions
{
api-version: string ,
jsRuntimeOptions:
{
log_exception_details: boolean ,
max_cached_interpreters: integer ,
max_execution_time_ms: integer ,
max_heap_bytes: integer ,
max_stack_bytes: integer ,
return_exception_details: boolean ,
}
,
}

⚐ Response (200)

{
log_exception_details: boolean ,
max_cached_interpreters: integer ,
max_execution_time_ms: integer ,
max_heap_bytes: integer ,
max_stack_bytes: integer ,
return_exception_details: boolean ,
}

⚐ Response (default)

{
error:
{
code: string ,
message: string ,
}
,
}
ListUserDefinedFunctions (new)
Description :  User defined functions stored in the Confidential Ledger
Reference :  Link ¶

⚼ Request

GET:  /app/userDefinedFunctions
{
api-version: string ,
}

⚐ Response (200)

{
functions:
[
{
code: string ,
id: string ,
}
,
]
,
nextLink: string ,
}

⚐ Response (default)

{
error:
{
code: string ,
message: string ,
}
,
}
GetUserDefinedFunction (new)
Description :  Returns the user defined function in the Confidential Ledger
Reference :  Link ¶

⚼ Request

GET:  /app/userDefinedFunctions/{functionId}
{
api-version: string ,
functionId: string ,
}

⚐ Response (200)

{
code: string ,
id: string ,
}

⚐ Response (default)

{
error:
{
code: string ,
message: string ,
}
,
}
CreateUserDefinedFunction (new)
Description :  Creates the user defined function in the Confidential Ledger
Reference :  Link ¶

⚼ Request

PUT:  /app/userDefinedFunctions/{functionId}
{
api-version: string ,
functionId: string ,
userDefinedFunction:
{
code: string ,
id: string ,
}
,
}

⚐ Response (200)

{
$headers:
{
x-ms-ccf-transaction-id: string ,
}
,
$schema:
{
code: string ,
id: string ,
}
,
}

⚐ Response (201)

{
$headers:
{
x-ms-ccf-transaction-id: string ,
}
,
$schema:
{
code: string ,
id: string ,
}
,
}

⚐ Response (default)

{
error:
{
code: string ,
message: string ,
}
,
}
DeleteUserDefinedFunction (new)
Description :  Deletes a user defined function from the Confidential Ledger.
Reference :  Link ¶

⚼ Request

DELETE:  /app/userDefinedFunctions/{functionId}
{
api-version: string ,
functionId: string ,
}

⚐ Response (204)

{}

⚐ Response (default)

{
error:
{
code: string ,
message: string ,
}
,
}
ExecuteUserDefinedFunction (new)
Description :  Executes the user defined function in the Confidential Ledger
Reference :  Link ¶

⚼ Request

POST:  /app/userDefinedFunctions/{functionId}:execute
{
api-version: string ,
functionId: string ,
userDefinedFunctionExecutionProperties:
{
arguments:
[
string ,
]
,
exportedFunctionName: string ,
runtimeOptions:
{
log_exception_details: boolean ,
max_cached_interpreters: integer ,
max_execution_time_ms: integer ,
max_heap_bytes: integer ,
max_stack_bytes: integer ,
return_exception_details: boolean ,
}
,
}
,
}

⚐ Response (200)

{
error:
{
message: string ,
}
,
result:
{
returnValue: string ,
}
,
status: enum ,
}

⚐ Response (default)

{
error:
{
code: string ,
message: string ,
}
,
}
ListUsers (new)
Description :  All users' object IDs and single role per user will be returned.
Reference :  Link ¶

⚼ Request

GET:  /app/users
{
api-version: string ,
}

⚐ Response (200)

{
ledgerUsers:
[
{
assignedRole: enum ,
userId: string ,
}
,
]
,
nextLink: string ,
}

⚐ Response (default)

{
error:
{
code: string ,
message: string ,
}
,
}
GetUser (new)
Description :  Gets a user.
Reference :  Link ¶

⚼ Request

GET:  /app/users/{userId}
{
api-version: string ,
userId: string ,
}

⚐ Response (200)

{
assignedRole: enum ,
userId: string ,
}

⚐ Response (default)

{
error:
{
code: string ,
message: string ,
}
,
}
CreateOrUpdateUser (new)
Description :  A JSON merge patch is applied for existing users
Reference :  Link ¶

⚼ Request

PATCH:  /app/users/{userId}
{
api-version: string ,
userId: string ,
userDetails:
{
assignedRole: enum ,
userId: string ,
}
,
}

⚐ Response (200)

{
assignedRole: enum ,
userId: string ,
}

⚐ Response (default)

{
error:
{
code: string ,
message: string ,
}
,
}
DeleteUser (new)
Description :  Deletes a user from the Confidential Ledger.
Reference :  Link ¶

⚼ Request

DELETE:  /app/users/{userId}
{
api-version: string ,
userId: string ,
}

⚐ Response (204)

{}

⚐ Response (default)

{
error:
{
code: string ,
message: string ,
}
,
}